package com.view;

import java.util.Date;
import java.util.List;
import com.controller.ControladorPartitura;
import com.model.Instrumento;
import com.model.Partitura;
import com.model.Repertorio;
import com.opensymphony.xwork2.ActionSupport;

public class RepertorioAction extends ActionSupport {

	private static final long serialVersionUID = 1L;
	private int idRepertorio;
	private int idPartitura;
	private int idInstrumento;
	private int idTipo;
	private int idAutor;
	private Repertorio repertorio;
	private List<Partitura> partituraList;
	private List<Instrumento> instrumentoList;
	private ControladorPartitura linkController;
	
	
	public RepertorioAction(){
		linkController = new ControladorPartitura();
	}
	
	public String execute(){
		return SUCCESS;
	}
	
	public String Repertorio(){
		try {
			partituraList = linkController.listaPartiturasRepertorio(repertorio.getIdRepertorio());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "mostrarPartituras";
	}
	
	public String ListaPartiturasParaRepertorio(){
		try {
			partituraList = linkController.listaPartiturasParaRepertorio(getIdTipo(),getIdInstrumento(),getIdAutor(),repertorio.getIdRepertorio());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return SUCCESS;
	}
	
	public String obtenerRepertorio(){
		try {
			repertorio = linkController.obtenerRepertorio(getIdRepertorio());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "obtenerRepertorio";
	}
	
	public String Modificar(){
		try {
			linkController.ModificarRepertorio(repertorio);
			repertorio = linkController.obtenerRepertorio(repertorio.getIdRepertorio());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "obtenerRepertorio";
	}
	
	public String Instrumento(){
		try {
			instrumentoList = linkController.listaInstrumentosRepertorio(getIdPartitura(),getIdRepertorio());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "mostrarInstrumentos";
	}
	
	public String Crear(){
		try {
			repertorio.setIdRepertorio(linkController.obtenerIdParaRepertorio());
			linkController.crearRepertorio(repertorio);			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "obtenerRepertorio";
	}
	
	public String agregarPartituraRepertorio(){
		try {
			Date fechaActual = new Date();
			long lnMilisegundos = fechaActual.getTime();
			java.sql.Date sqlDate = new java.sql.Date(lnMilisegundos);
			linkController.agregarPartituraRepertorio(getIdPartitura(),repertorio.getIdRepertorio(),getIdInstrumento(),sqlDate);
			partituraList = linkController.listaPartiturasParaRepertorio(getIdTipo(),getIdInstrumento(),getIdAutor(),repertorio.getIdRepertorio());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return SUCCESS;
	}
	
	public String EliminarPartituraRepertorio(){
		try {
			linkController.eliminarPartituraRepertorio(getIdPartitura(), repertorio.getIdRepertorio(), getIdInstrumento());
			partituraList = linkController.listaPartiturasRepertorio(repertorio.getIdRepertorio());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "mostrarPartituras";
	}
	
	public String EliminarRepertorio(){
		try {
			linkController.eliminarRepertorio(getIdRepertorio());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "eliminado";
	}
	
	public String Tipo(){
		try {
			 idTipo = linkController.obtenerTipoInstrumento(getIdInstrumento());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "mostrarInstrumentos";
	}
	
	public int getIdRepertorio() {
		return idRepertorio;
	}
	public void setIdRepertorio(int idRepertorio) {
		this.idRepertorio = idRepertorio;
	}
	public ControladorPartitura getLinkController() {
		return linkController;
	}
	public void setLinkController(ControladorPartitura linkController) {
		this.linkController = linkController;
	}

	public List<Partitura> getPartituraList() {
		return partituraList;
	}

	public void setPartituraList(List<Partitura> partituraList) {
		this.partituraList = partituraList;
	}

	public List<Instrumento> getInstrumentoList() {
		return instrumentoList;
	}

	public void setInstrumentoList(List<Instrumento> instrumentoList) {
		this.instrumentoList = instrumentoList;
	}

	public int getIdPartitura() {
		return idPartitura;
	}

	public void setIdPartitura(int idPartitura) {
		this.idPartitura = idPartitura;
	}

	public int getIdInstrumento() {
		return idInstrumento;
	}

	public void setIdInstrumento(int idInstrumento) {
		this.idInstrumento = idInstrumento;
	}

	public int getIdTipo() {
		return idTipo;
	}

	public void setIdTipo(int idTipo) {
		this.idTipo = idTipo;
	}

	public Repertorio getRepertorio() {
		return repertorio;
	}

	public void setRepertorio(Repertorio repertorio) {
		this.repertorio = repertorio;
	}

	public int getIdAutor() {
		return idAutor;
	}

	public void setIdAutor(int idAutor) {
		this.idAutor = idAutor;
	}
	

}
